\section{Programació}
\subsection{Objectiu de l'aplicació}
    \begin{frame}{Funcionament}
        \begin{center}
        \includegraphics[height=10em]{images/vpn-fullymeshed}
        \end{center}
        \begin{itemize}
\item Xarxa mallada totalment connectada.
\item NAT \emph{friendly}.
\item Gestió manual (externa).
        \end{itemize}
    \end{frame}
\subsection{Disseny del protocol}
    \begin{frame}{Seguretat}
        \begin{itemize}
\item \textbf{DTLS} (RFC 4347).
        \begin{itemize}
            \item Utilitza només UDP.
            \item Basat en TLSv1.
        \end{itemize}
        \end{itemize}
        \begin{itemize}
\item Autenticació mitjançant certificats (centralitzat).
\item Certificats contenen els permisos d'adreçament:
        \begin{block}{NameConstraints (x509v3)}\small\tt
        nameConstraints=permitted;IP:192.168.0.0/255.255.0.0
        \end{block}
        \end{itemize}
        \begin{itemize}
\item Programat a prova d'atacs interns.
        \end{itemize}
    \end{frame}
    \begin{frame}{Fluxe}
        \begin{center}
        \includegraphics[height=12em]{images/dia-pktflow}
        \end{center}
        \begin{itemize}
\item Paquets Identification (ID)
\item Paquets Identification Acknowledgment (ID ACK)
\item Paquets Keep Alive (KA)
\item Paquets Internet Protocol (IPv4)
        \end{itemize}

    \end{frame}
    \begin{frame}{Paquets Identification}
        \begin{center}
\scriptsize
\begin{tabular}{|c|p{0.0625\linewidth}|p{0.0625\linewidth}|p{0.125\linewidth}|p{0.25\linewidth}c|}
\hline
bits & \centering 0--3 & \centering 4--7 & \centering 8--15 & \centering 16--31 & \\ \hline \hline
0 & \centering 0000 & \centering 0001 & \centering 0x00 & \centering Total Lenght & \\ \hline
32 & \multicolumn{2}{|c|}{\# Networks} & \centering \# IP-Ports & \\ \cline{0-3} \noalign{\vskip 2pt} \hline
48 & \multicolumn{4}{|c}{Network IP} & \\ \hline
80 & \multicolumn{4}{|c}{Network Netmask} & \\ \hline
112 & \multicolumn{4}{|c}{\ldots} & \\ \hline
144 & \multicolumn{4}{|c}{\ldots} & \\ \cline{0-5} \noalign{\vskip 2pt} \cline{0-5}
=0 & \multicolumn{4}{|c}{Host IP} & \\ \hline
+32 & \multicolumn{3}{|c|}{UDP Port} & \\ \hline
+48 & \multicolumn{4}{|c}{\ldots} & \\ \hline
+80 & \multicolumn{3}{|c|}{\ldots} & \\ \cline{0-3}
\multicolumn{6}{c}{~} \\
\multicolumn{6}{c}{~} \\
\multicolumn{6}{c}{~} \\
\hline
bits & \centering 0--3 & \centering 4--7 & \centering 8--15 & \centering 16--31 & \\ \hline \hline
0 & \centering 0000 & \centering 0001 & \centering 0x01 & \centering 0x04 & \\ \hline
\end{tabular}
        \end{center}
    \end{frame}
    \begin{frame}{Paquets Keep Alive}
        \begin{center}
\scriptsize
\begin{tabular}{|c|p{0.0625\linewidth}|p{0.0625\linewidth}|p{0.125\linewidth}|p{0.25\linewidth}c|}
\hline
bits & \centering 0--3 & \centering 4--7 & \centering 8--15 & \centering 16--31 & \\ \hline \hline
0 & \centering 0000 & \centering 0001 & \centering 0x02 & \centering Total Lenght & \\ \hline
32 & \multicolumn{2}{|c|}{\# Peers} \\ \cline{0-2} \noalign{\vskip 2pt} \cline{0-3}
40 & \multicolumn{2}{|c|}{\# Networks} & \centering \# IP-Ports & \\ \hline
56 & \multicolumn{4}{|c}{Network IP} & \\ \hline
88 & \multicolumn{4}{|c}{Network Netmask} & \\ \hline
120 & \multicolumn{4}{|c}{\ldots} & \\ \hline
152 & \multicolumn{4}{|c}{\ldots} & \\ \hline
=0 & \multicolumn{4}{|c}{Host IP} & \\ \hline
+32 & \multicolumn{3}{|c|}{UDP Port} & \\ \hline
+48 & \multicolumn{4}{|c}{\ldots} & \\ \hline
+80 & \multicolumn{3}{|c|}{\ldots} & \\ \cline{0-3} \noalign{\vskip 2pt} \cline{0-3}
=0 & \multicolumn{2}{|c|}{\ldots} & \centering \ldots & \\ \hline
+16 & \multicolumn{4}{|c}{\ldots} & \\ \hline
+48 & \multicolumn{4}{|c}{\ldots} & \\ \hline
=0 & \multicolumn{4}{|c}{\ldots} & \\ \hline
+32 & \multicolumn{3}{|c|}{\ldots} & \\ \cline{0-3}
\end{tabular}
        \end{center}
    \end{frame}
\subsection{Arquitectura del programa}
    \begin{frame}{Processos}
        \begin{center}
        \includegraphics[height=12em]{images/dia-app}
        \end{center}
		\begin{itemize}
\item Programat en C.
\item Programat utilitzant \emph{threads}.
		\end{itemize}
    \end{frame}
    \begin{frame}{Part UDP Server}
        \begin{center}
        \includegraphics[height=19em]{images/dia-udpsrv}
        \end{center}
    \end{frame}
    \begin{frame}{Part TUN Server}
        \begin{center}
        \includegraphics[height=18em]{images/dia-tunsrv}
        \end{center}
    \end{frame}
\subsection{Gestió de la VPN}
    \begin{frame}{Casos d'ús}
        \begin{center}
        \includegraphics[height=18em]{images/dia-case}
        \end{center}
    \end{frame}
\subsection{Conclusions}
    \begin{frame}{Disseny resultant}
    	\begin{exampleblock}{Pros}
        \begin{itemize}
\item Xarxa dinàmica mallada.
\item Adreçament IP autenticat amb certificats.
\item Canal xifrat amb un protocol estàndard (\textbf{DTLS}).
        \end{itemize}
    	\end{exampleblock}
	    \begin{alertblock}{Contres}
        \begin{itemize}
\item Sense enrutament intern.
        \end{itemize}
	    \end{alertblock}
        \begin{block}{Pendent}
        \begin{itemize}
\item Fragmentació dinàmica.
        \end{itemize}
        \end{block}
    \end{frame}

